import { IPSModelData } from '../ipsmodel-data';
import { IPSSysBDScheme } from '../ba/ipssys-bdscheme';
import { IPSDEDBConfig } from '../database/ipsdedbconfig';
import { IPSDEDBIndex } from '../database/ipsdedbindex';
import { IPSDEDBTable } from '../database/ipsdedbtable';
import { IPSSysDBScheme } from '../database/ipssys-dbscheme';
import { IPSDEGroup } from './ipsdegroup';
import { IPSDEACMode } from './ac/ipsdeacmode';
import { IPSDEAction } from './action/ipsdeaction';
import { IPSDEActionGroup } from './action/ipsdeaction-group';
import { IPSDEDataExport } from './dataexport/ipsdedata-export';
import { IPSDEDataImport } from './dataimport/ipsdedata-import';
import { IPSDEMap } from './datamap/ipsdemap';
import { IPSDEDataSync } from './datasync/ipsdedata-sync';
import { IPSDEFGroup } from './defield/ipsdefgroup';
import { IPSDEField } from './defield/ipsdefield';
import { IPSDERBase } from './der/ipsderbase';
import { IPSDERGroup } from './der/ipsdergroup';
import { IPSDERInherit } from './der/ipsderinherit';
import { IPSDEDataQuery } from './ds/ipsdedata-query';
import { IPSDEDataSet } from './ds/ipsdedata-set';
import { IPSDEFilterDTO } from './ds/ipsdefilter-dto';
import { IPSDEDTSQueue } from './dts/ipsdedtsqueue';
import { IPSDELogic } from './logic/ipsdelogic';
import { IPSDEMSLogic } from './logic/ipsdemslogic';
import { IPSDEMainState } from './mainstate/ipsdemain-state';
import { IPSDENotify } from './notify/ipsdenotify';
import { IPSDEPrint } from './print/ipsdeprint';
import { IPSDEOPPriv } from './priv/ipsdeoppriv';
import { IPSDEUserRole } from './priv/ipsdeuser-role';
import { IPSDEReport } from './report/ipsdereport';
import { IPSDEMethodDTO } from './service/ipsdemethod-dto';
import { IPSDEUniState } from './unistate/ipsdeuni-state';
import { IPSDEUtil } from './util/ipsdeutil';
import { IPSDEWF } from './wf/ipsdewf';
import { IPSLanguageRes } from '../res/ipslanguage-res';
import { IPSSysSFPlugin } from '../res/ipssys-sfplugin';
import { IPSSubSysServiceAPI } from '../service/ipssub-sys-service-api';
import { IPSSubSysServiceAPIDE } from '../service/ipssub-sys-service-apide';
import { IPSSystemModule } from '../system/ipssystem-module';
import { IPSSysTestCase } from '../testing/ipssys-test-case';
import { IPSSysTestData } from '../testing/ipssys-test-data';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDataEntity
 */
export interface IPSDataEntity extends IPSModelObject {
  /**
   * 实体自动填充模式集合
   *
   * @type {IPSDEACMode[]}
   */
  getAllPSDEACModes(): IPSDEACMode[] | null;

  /**
   * 实体自动填充模式集合
   *
   * @type {IPSDEACMode[]}
   */
  get allPSDEACModes(): IPSDEACMode[] | null;

  findPSDEACMode(objKey: any): IPSDEACMode | null;

  /**
   * 实体行为组集合
   *
   * @type {IPSDEActionGroup[]}
   */
  getAllPSDEActionGroups(): IPSDEActionGroup[] | null;

  /**
   * 实体行为组集合
   *
   * @type {IPSDEActionGroup[]}
   */
  get allPSDEActionGroups(): IPSDEActionGroup[] | null;

  findPSDEActionGroup(objKey: any): IPSDEActionGroup | null;

  /**
   * 实体行为集合
   *
   * @type {IPSDEAction[]}
   */
  getAllPSDEActions(): IPSDEAction[] | null;

  /**
   * 实体行为集合
   *
   * @type {IPSDEAction[]}
   */
  get allPSDEActions(): IPSDEAction[] | null;

  findPSDEAction(objKey: any): IPSDEAction | null;

  /**
   * 实体数据库配置集合
   *
   * @type {IPSDEDBConfig[]}
   */
  getAllPSDEDBConfigs(): IPSDEDBConfig[] | null;

  /**
   * 实体数据库配置集合
   *
   * @type {IPSDEDBConfig[]}
   */
  get allPSDEDBConfigs(): IPSDEDBConfig[] | null;

  findPSDEDBConfig(objKey: any): IPSDEDBConfig | null;

  /**
   * 数据库索引集合
   *
   * @type {IPSDEDBIndex[]}
   */
  getAllPSDEDBIndices(): IPSDEDBIndex[] | null;

  /**
   * 数据库索引集合
   *
   * @type {IPSDEDBIndex[]}
   */
  get allPSDEDBIndices(): IPSDEDBIndex[] | null;

  findPSDEDBIndex(objKey: any): IPSDEDBIndex | null;

  /**
   * 实体数据表集合
   *
   * @type {IPSDEDBTable[]}
   */
  getAllPSDEDBTables(): IPSDEDBTable[] | null;

  /**
   * 实体数据表集合
   *
   * @type {IPSDEDBTable[]}
   */
  get allPSDEDBTables(): IPSDEDBTable[] | null;

  findPSDEDBTable(objKey: any): IPSDEDBTable | null;

  /**
   * 实体异步处理队列集合
   *
   * @type {IPSDEDTSQueue[]}
   */
  getAllPSDEDTSQueues(): IPSDEDTSQueue[] | null;

  /**
   * 实体异步处理队列集合
   *
   * @type {IPSDEDTSQueue[]}
   */
  get allPSDEDTSQueues(): IPSDEDTSQueue[] | null;

  findPSDEDTSQueue(objKey: any): IPSDEDTSQueue | null;

  /**
   * 实体数据导出集合
   *
   * @type {IPSDEDataExport[]}
   */
  getAllPSDEDataExports(): IPSDEDataExport[] | null;

  /**
   * 实体数据导出集合
   *
   * @type {IPSDEDataExport[]}
   */
  get allPSDEDataExports(): IPSDEDataExport[] | null;

  findPSDEDataExport(objKey: any): IPSDEDataExport | null;

  /**
   * 实体数据导入集合
   *
   * @type {IPSDEDataImport[]}
   */
  getAllPSDEDataImports(): IPSDEDataImport[] | null;

  /**
   * 实体数据导入集合
   *
   * @type {IPSDEDataImport[]}
   */
  get allPSDEDataImports(): IPSDEDataImport[] | null;

  findPSDEDataImport(objKey: any): IPSDEDataImport | null;

  /**
   * 实体数据查询集合
   *
   * @type {IPSDEDataQuery[]}
   */
  getAllPSDEDataQueries(): IPSDEDataQuery[] | null;

  /**
   * 实体数据查询集合
   *
   * @type {IPSDEDataQuery[]}
   */
  get allPSDEDataQueries(): IPSDEDataQuery[] | null;

  findPSDEDataQuery(objKey: any): IPSDEDataQuery | null;

  /**
   * 实体数据集集合
   *
   * @type {IPSDEDataSet[]}
   */
  getAllPSDEDataSets(): IPSDEDataSet[] | null;

  /**
   * 实体数据集集合
   *
   * @type {IPSDEDataSet[]}
   */
  get allPSDEDataSets(): IPSDEDataSet[] | null;

  findPSDEDataSet(objKey: any): IPSDEDataSet | null;

  /**
   * 实体数据同步集合
   *
   * @type {IPSDEDataSync[]}
   */
  getAllPSDEDataSyncs(): IPSDEDataSync[] | null;

  /**
   * 实体数据同步集合
   *
   * @type {IPSDEDataSync[]}
   */
  get allPSDEDataSyncs(): IPSDEDataSync[] | null;

  findPSDEDataSync(objKey: any): IPSDEDataSync | null;

  /**
   * 实体属性组集合
   *
   * @type {IPSDEFGroup[]}
   */
  getAllPSDEFGroups(): IPSDEFGroup[] | null;

  /**
   * 实体属性组集合
   *
   * @type {IPSDEFGroup[]}
   */
  get allPSDEFGroups(): IPSDEFGroup[] | null;

  findPSDEFGroup(objKey: any): IPSDEFGroup | null;

  /**
   * 属性集合
   *
   * @type {IPSDEField[]}
   */
  getAllPSDEFields(): IPSDEField[] | null;

  /**
   * 属性集合
   *
   * @type {IPSDEField[]}
   */
  get allPSDEFields(): IPSDEField[] | null;

  findPSDEField(objKey: any): IPSDEField | null;

  /**
   * 实体组集合
   *
   * @type {IPSDEGroup[]}
   */
  getAllPSDEGroups(): IPSDEGroup[] | null;

  /**
   * 实体组集合
   *
   * @type {IPSDEGroup[]}
   */
  get allPSDEGroups(): IPSDEGroup[] | null;

  findPSDEGroup(objKey: any): IPSDEGroup | null;

  /**
   * 实体逻辑对象集合
   *
   * @type {IPSDELogic[]}
   */
  getAllPSDELogics(): IPSDELogic[] | null;

  /**
   * 实体逻辑对象集合
   *
   * @type {IPSDELogic[]}
   */
  get allPSDELogics(): IPSDELogic[] | null;

  findPSDELogic(objKey: any): IPSDELogic | null;

  /**
   * 实体主状态集合
   *
   * @type {IPSDEMainState[]}
   */
  getAllPSDEMainStates(): IPSDEMainState[] | null;

  /**
   * 实体主状态集合
   *
   * @type {IPSDEMainState[]}
   */
  get allPSDEMainStates(): IPSDEMainState[] | null;

  findPSDEMainState(objKey: any): IPSDEMainState | null;

  /**
   * 实体映射集合
   *
   * @type {IPSDEMap[]}
   */
  getAllPSDEMaps(): IPSDEMap[] | null;

  /**
   * 实体映射集合
   *
   * @type {IPSDEMap[]}
   */
  get allPSDEMaps(): IPSDEMap[] | null;

  findPSDEMap(objKey: any): IPSDEMap | null;

  /**
   * 实体方法DTO集合
   *
   * @type {IPSDEMethodDTO[]}
   */
  getAllPSDEMethodDTOs(): IPSDEMethodDTO[] | null;

  /**
   * 实体方法DTO集合
   *
   * @type {IPSDEMethodDTO[]}
   */
  get allPSDEMethodDTOs(): IPSDEMethodDTO[] | null;

  findPSDEMethodDTO(objKey: any): IPSDEMethodDTO | null;

  /**
   * 实体通知集合
   *
   * @type {IPSDENotify[]}
   */
  getAllPSDENotifies(): IPSDENotify[] | null;

  /**
   * 实体通知集合
   *
   * @type {IPSDENotify[]}
   */
  get allPSDENotifies(): IPSDENotify[] | null;

  findPSDENotify(objKey: any): IPSDENotify | null;

  /**
   * 实体操作标识集合
   *
   * @type {IPSDEOPPriv[]}
   */
  getAllPSDEOPPrivs(): IPSDEOPPriv[] | null;

  /**
   * 实体操作标识集合
   *
   * @type {IPSDEOPPriv[]}
   */
  get allPSDEOPPrivs(): IPSDEOPPriv[] | null;

  findPSDEOPPriv(objKey: any): IPSDEOPPriv | null;

  /**
   * 实体打印集合
   *
   * @type {IPSDEPrint[]}
   */
  getAllPSDEPrints(): IPSDEPrint[] | null;

  /**
   * 实体打印集合
   *
   * @type {IPSDEPrint[]}
   */
  get allPSDEPrints(): IPSDEPrint[] | null;

  findPSDEPrint(objKey: any): IPSDEPrint | null;

  /**
   * 实体关系组集合
   *
   * @type {IPSDERGroup[]}
   */
  getAllPSDERGroups(): IPSDERGroup[] | null;

  /**
   * 实体关系组集合
   *
   * @type {IPSDERGroup[]}
   */
  get allPSDERGroups(): IPSDERGroup[] | null;

  findPSDERGroup(objKey: any): IPSDERGroup | null;

  /**
   * 实体报表集合
   *
   * @type {IPSDEReport[]}
   */
  getAllPSDEReports(): IPSDEReport[] | null;

  /**
   * 实体报表集合
   *
   * @type {IPSDEReport[]}
   */
  get allPSDEReports(): IPSDEReport[] | null;

  findPSDEReport(objKey: any): IPSDEReport | null;

  /**
   * 实体统一状态集合
   *
   * @type {IPSDEUniState[]}
   */
  getAllPSDEUniStates(): IPSDEUniState[] | null;

  /**
   * 实体统一状态集合
   *
   * @type {IPSDEUniState[]}
   */
  get allPSDEUniStates(): IPSDEUniState[] | null;

  findPSDEUniState(objKey: any): IPSDEUniState | null;

  /**
   * 实体操作角色集合
   *
   * @type {IPSDEUserRole[]}
   */
  getAllPSDEUserRoles(): IPSDEUserRole[] | null;

  /**
   * 实体操作角色集合
   *
   * @type {IPSDEUserRole[]}
   */
  get allPSDEUserRoles(): IPSDEUserRole[] | null;

  findPSDEUserRole(objKey: any): IPSDEUserRole | null;

  /**
   * 实体功能配置集合
   *
   * @type {IPSDEUtil[]}
   */
  getAllPSDEUtils(): IPSDEUtil[] | null;

  /**
   * 实体功能配置集合
   *
   * @type {IPSDEUtil[]}
   */
  get allPSDEUtils(): IPSDEUtil[] | null;

  findPSDEUtil(objKey: any): IPSDEUtil | null;

  /**
   * 实体工作流集合
   *
   * @type {IPSDEWF[]}
   */
  getAllPSDEWFs(): IPSDEWF[] | null;

  /**
   * 实体工作流集合
   *
   * @type {IPSDEWF[]}
   */
  get allPSDEWFs(): IPSDEWF[] | null;

  findPSDEWF(objKey: any): IPSDEWF | null;

  /**
   * 实体附加模型数据集合
   *
   * @type {IPSModelData[]}
   */
  getAllPSModelDatas(): IPSModelData[] | null;

  /**
   * 实体附加模型数据集合
   *
   * @type {IPSModelData[]}
   */
  get allPSModelDatas(): IPSModelData[] | null;

  findPSModelData(objKey: any): IPSModelData | null;

  /**
   * 实体测试用例集合
   *
   * @type {IPSSysTestCase[]}
   */
  getAllPSSysTestCases(): IPSSysTestCase[] | null;

  /**
   * 实体测试用例集合
   *
   * @type {IPSSysTestCase[]}
   */
  get allPSSysTestCases(): IPSSysTestCase[] | null;

  findPSSysTestCase(objKey: any): IPSSysTestCase | null;

  /**
   * 实体测试数据集合
   *
   * @type {IPSSysTestData[]}
   */
  getAllPSSysTestDatas(): IPSSysTestData[] | null;

  /**
   * 实体测试数据集合
   *
   * @type {IPSSysTestData[]}
   */
  get allPSSysTestDatas(): IPSSysTestData[] | null;

  findPSSysTestData(objKey: any): IPSSysTestData | null;

  /**
   * 审计模式
   * @description 值模式 [数据审计模式] {1：基本审计、 2：详细审计（含变化记录） }
   * @type {( number | 1 | 2)}
   * @default 0
   */
  auditMode: number | 1 | 2;

  /**
   * 业务标记
   * @description 值模式 [实体预置业务模式] {DATAAUDIT：数据审计记录、 DYNASTORAGE：动态数据存储、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'DATAAUDIT' | 'DYNASTORAGE' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  bizTag: string | 'DATAAUDIT' | 'DYNASTORAGE' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 实体标记
   * @type {string}
   */
  dETag: string;

  /**
   * 实体标记2
   * @type {string}
   */
  dETag2: string;

  /**
   * 实体类型
   * @description 值模式 [云实体类型] {1：主实体、 2：附属实体、 3：关系实体、 4：动态附属实体 }
   * @type {( number | 1 | 2 | 3 | 4)}
   */
  dEType: number | 1 | 2 | 3 | 4;

  /**
   * 默认数据源
   * @description 值模式 [云系统部署数据库模式] {DEFAULT：默认连接、 DB2：数据连接2、 DB3：数据连接3、 DB4：数据连接4、 DB5：数据连接5、 DB6：数据连接6、 DB7：数据连接7、 DB8：数据连接8、 DB9：数据连接9、 DB10：数据连接10、 DB11：数据连接11、 DB12：数据连接12 }
   * @type {( string | 'DEFAULT' | 'DB2' | 'DB3' | 'DB4' | 'DB5' | 'DB6' | 'DB7' | 'DB8' | 'DB9' | 'DB10' | 'DB11' | 'DB12')}
   */
  dSLink: string | 'DEFAULT' | 'DB2' | 'DB3' | 'DB4' | 'DB5' | 'DB6' | 'DB7' | 'DB8' | 'DB9' | 'DB10' | 'DB11' | 'DB12';

  /**
   * 实体访问控制体系
   * @description 值模式 [系统权限控制体系] {1：运行子系统角色体系（默认）、 2：当前系统角色及实体角色 }
   * @type {( number | 1 | 2)}
   */
  dataAccCtrlArch: number | 1 | 2;

  /**
   * 实体数据访问控制方式
   * @description 值模式 [实体数据访问控制方式] {0：无控制、 1：自控制、 2：附属主实体控制、 3：附属主实体控制（未映射自控） }
   * @type {( number | 0 | 1 | 2 | 3)}
   */
  dataAccCtrlMode: number | 0 | 1 | 2 | 3;

  /**
   * 实体数据变化日志模式
   * @description 值模式 [实体数据变更日志类型] {0：无日志、 2：单项数据（同步）、 3：单项数据（含关联数据）（同步）、 4：单项数据（异步）、 5：单项数据（含关联数据）（异步） }
   * @type {( number | 0 | 2 | 3 | 4 | 5)}
   */
  dataChangeLogMode: number | 0 | 2 | 3 | 4 | 5;

  /**
   * 默认实体数据查询
   *
   * @type {IPSDEDataQuery}
   */
  getDefaultPSDEDataQuery(): IPSDEDataQuery | null;

  /**
   * 默认实体数据查询
   *
   * @type {IPSDEDataQuery}
   */
  get defaultPSDEDataQuery(): IPSDEDataQuery | null;

  /**
   * 默认实体数据查询（必须存在）
   *
   * @type {IPSDEDataQuery}
   */
  getDefaultPSDEDataQueryMust(): IPSDEDataQuery;

  /**
   * 默认实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  getDefaultPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 默认实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  get defaultPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 默认实体数据集合（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getDefaultPSDEDataSetMust(): IPSDEDataSet;

  /**
   * 默认实体过滤器DTO
   *
   * @type {IPSDEFilterDTO}
   */
  getDefaultPSDEFilterDTO(): IPSDEFilterDTO | null;

  /**
   * 默认实体过滤器DTO
   *
   * @type {IPSDEFilterDTO}
   */
  get defaultPSDEFilterDTO(): IPSDEFilterDTO | null;

  /**
   * 默认实体过滤器DTO（必须存在）
   *
   * @type {IPSDEFilterDTO}
   */
  getDefaultPSDEFilterDTOMust(): IPSDEFilterDTO;

  /**
   * 默认实体主状态迁移逻辑
   *
   * @type {IPSDEMSLogic}
   */
  getDefaultPSDEMSLogic(): IPSDEMSLogic | null;

  /**
   * 默认实体主状态迁移逻辑
   *
   * @type {IPSDEMSLogic}
   */
  get defaultPSDEMSLogic(): IPSDEMSLogic | null;

  /**
   * 默认实体主状态迁移逻辑（必须存在）
   *
   * @type {IPSDEMSLogic}
   */
  getDefaultPSDEMSLogicMust(): IPSDEMSLogic;

  /**
   * 默认实体方法DTO
   *
   * @type {IPSDEMethodDTO}
   */
  getDefaultPSDEMethodDTO(): IPSDEMethodDTO | null;

  /**
   * 默认实体方法DTO
   *
   * @type {IPSDEMethodDTO}
   */
  get defaultPSDEMethodDTO(): IPSDEMethodDTO | null;

  /**
   * 默认实体方法DTO（必须存在）
   *
   * @type {IPSDEMethodDTO}
   */
  getDefaultPSDEMethodDTOMust(): IPSDEMethodDTO;

  /**
   * 动态实例模式
   * @description 值模式 [动态实例模式（支持副本）] {0：不启用、 1：启用、 2：启用副本 }
   * @type {( number | 0 | 1 | 2)}
   */
  dynaInstMode: number | 0 | 1 | 2;

  /**
   * 动态实例标记
   * @type {string}
   */
  dynaInstTag: string;

  /**
   * 动态实例标记2
   * @type {string}
   */
  dynaInstTag2: string;

  /**
   * 支持行为操作
   * @description 值模式 [实体界面操作行为] {1：建立、 2：更新、 4：删除 }
   * @type {( number | 1 | 2 | 4)}
   */
  enableActions: number | 1 | 2 | 4;

  /**
   * 支持界面操作
   * @description 值模式 [实体界面操作行为] {1：建立、 2：更新、 4：删除 }
   * @type {( number | 1 | 2 | 4)}
   */
  enableUIActions: number | 1 | 2 | 4;

  /**
   * 启用视图级别
   * @description 值模式 [实体属性视图列级别] {0：默认（全部数据）、 1：2级（无行外数据）、 2：3级（关键数据）、 3：4级（个别字段） }
   * @type {( number | 0 | 1 | 2 | 3)}
   */
  enableViewLevel: number | 0 | 1 | 2 | 3;

  /**
   * 实体缓存超时时长（毫秒）
   * @type {number}
   * @default -1
   */
  entityCacheTimeout: number;

  /**
   * 扩展模式
   * @description 值模式 [实体扩展模式] {0：无扩展、 2：子系统功能扩展 }
   * @type {( number | 0 | 2)}
   */
  extendMode: number | 0 | 2;

  /**
   * 索引实体类型
   * @type {string}
   */
  indexDEType: string;

  /**
   * 索引类型属性
   *
   * @type {IPSDEField}
   */
  getIndexTypePSDEField(): IPSDEField | null;

  /**
   * 索引类型属性
   *
   * @type {IPSDEField}
   */
  get indexTypePSDEField(): IPSDEField | null;

  /**
   * 索引类型属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getIndexTypePSDEFieldMust(): IPSDEField;

  /**
   * 继承实体对象
   *
   * @type {IPSDataEntity}
   */
  getInheritPSDataEntity(): IPSDataEntity | null;

  /**
   * 继承实体对象
   *
   * @type {IPSDataEntity}
   */
  get inheritPSDataEntity(): IPSDataEntity | null;

  /**
   * 继承实体对象（必须存在）
   *
   * @type {IPSDataEntity}
   */
  getInheritPSDataEntityMust(): IPSDataEntity;

  /**
   * 逻辑无效值
   * @type {string}
   */
  invalidLogicValue: string;

  /**
   * 键名属性
   *
   * @type {IPSDEField}
   */
  getKeyNamePSDEField(): IPSDEField | null;

  /**
   * 键名属性
   *
   * @type {IPSDEField}
   */
  get keyNamePSDEField(): IPSDEField | null;

  /**
   * 键名属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getKeyNamePSDEFieldMust(): IPSDEField;

  /**
   * 主键属性
   *
   * @type {IPSDEField}
   */
  getKeyPSDEField(): IPSDEField | null;

  /**
   * 主键属性
   *
   * @type {IPSDEField}
   */
  get keyPSDEField(): IPSDEField | null;

  /**
   * 主键属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getKeyPSDEFieldMust(): IPSDEField;

  /**
   * 逻辑名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  getLNPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 逻辑名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  get lNPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 逻辑名称语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getLNPSLanguageResMust(): IPSLanguageRes;

  /**
   * 逻辑名称
   * @type {string}
   */
  logicName: string;

  /**
   * 逻辑有效属性
   *
   * @type {IPSDEField}
   */
  getLogicValidPSDEField(): IPSDEField | null;

  /**
   * 逻辑有效属性
   *
   * @type {IPSDEField}
   */
  get logicValidPSDEField(): IPSDEField | null;

  /**
   * 逻辑有效属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getLogicValidPSDEFieldMust(): IPSDEField;

  /**
   * 主状态属性集合
   *
   * @type {IPSDEField[]}
   */
  getMainStatePSDEFields(): IPSDEField[] | null;

  /**
   * 主状态属性集合
   *
   * @type {IPSDEField[]}
   */
  get mainStatePSDEFields(): IPSDEField[] | null;

  findMainStatePSDEField(objKey: any): IPSDEField | null;

  /**
   * 主信息属性
   *
   * @type {IPSDEField}
   */
  getMajorPSDEField(): IPSDEField | null;

  /**
   * 主信息属性
   *
   * @type {IPSDEField}
   */
  get majorPSDEField(): IPSDEField | null;

  /**
   * 主信息属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getMajorPSDEFieldMust(): IPSDEField;

  /**
   * 主关系集合
   *
   * @type {IPSDERBase[]}
   */
  getMajorPSDERs(): IPSDERBase[] | null;

  /**
   * 主关系集合
   *
   * @type {IPSDERBase[]}
   */
  get majorPSDERs(): IPSDERBase[] | null;

  findMajorPSDERBase(objKey: any): IPSDERBase | null;

  /**
   * 从关系集合
   *
   * @type {IPSDERBase[]}
   */
  getMinorPSDERs(): IPSDERBase[] | null;

  /**
   * 从关系集合
   *
   * @type {IPSDERBase[]}
   */
  get minorPSDERs(): IPSDERBase[] | null;

  findMinorPSDERBase(objKey: any): IPSDERBase | null;

  /**
   * 组织标识属性
   *
   * @type {IPSDEField}
   */
  getOrgIdPSDEField(): IPSDEField | null;

  /**
   * 组织标识属性
   *
   * @type {IPSDEField}
   */
  get orgIdPSDEField(): IPSDEField | null;

  /**
   * 组织标识属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getOrgIdPSDEFieldMust(): IPSDEField;

  /**
   * 继承关系对象
   *
   * @type {IPSDERInherit}
   */
  getPSDERInherit(): IPSDERInherit | null;

  /**
   * 继承关系对象
   *
   * @type {IPSDERInherit}
   */
  get psDERInherit(): IPSDERInherit | null;

  /**
   * 继承关系对象（必须存在）
   *
   * @type {IPSDERInherit}
   */
  getPSDERInheritMust(): IPSDERInherit;

  /**
   * 子系统服务接口
   *
   * @type {IPSSubSysServiceAPI}
   */
  getPSSubSysServiceAPI(): IPSSubSysServiceAPI | null;

  /**
   * 子系统服务接口
   *
   * @type {IPSSubSysServiceAPI}
   */
  get psSubSysServiceAPI(): IPSSubSysServiceAPI | null;

  /**
   * 子系统服务接口（必须存在）
   *
   * @type {IPSSubSysServiceAPI}
   */
  getPSSubSysServiceAPIMust(): IPSSubSysServiceAPI;

  /**
   * 子系统服务接口实体
   *
   * @type {IPSSubSysServiceAPIDE}
   */
  getPSSubSysServiceAPIDE(): IPSSubSysServiceAPIDE | null;

  /**
   * 子系统服务接口实体
   *
   * @type {IPSSubSysServiceAPIDE}
   */
  get psSubSysServiceAPIDE(): IPSSubSysServiceAPIDE | null;

  /**
   * 子系统服务接口实体（必须存在）
   *
   * @type {IPSSubSysServiceAPIDE}
   */
  getPSSubSysServiceAPIDEMust(): IPSSubSysServiceAPIDE;

  /**
   * 默认大数据库体系
   *
   * @type {IPSSysBDScheme}
   */
  getPSSysBDScheme(): IPSSysBDScheme | null;

  /**
   * 默认大数据库体系
   *
   * @type {IPSSysBDScheme}
   */
  get psSysBDScheme(): IPSSysBDScheme | null;

  /**
   * 默认大数据库体系（必须存在）
   *
   * @type {IPSSysBDScheme}
   */
  getPSSysBDSchemeMust(): IPSSysBDScheme;

  /**
   * 关系数据库架构
   *
   * @type {IPSSysDBScheme}
   */
  getPSSysDBScheme(): IPSSysDBScheme | null;

  /**
   * 关系数据库架构
   *
   * @type {IPSSysDBScheme}
   */
  get psSysDBScheme(): IPSSysDBScheme | null;

  /**
   * 关系数据库架构（必须存在）
   *
   * @type {IPSSysDBScheme}
   */
  getPSSysDBSchemeMust(): IPSSysDBScheme;

  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  get psSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件（必须存在）
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPluginMust(): IPSSysSFPlugin;

  /**
   * 系统模块
   *
   * @type {IPSSystemModule}
   */
  getPSSystemModule(): IPSSystemModule | null;

  /**
   * 系统模块
   *
   * @type {IPSSystemModule}
   */
  get psSystemModule(): IPSSystemModule | null;

  /**
   * 系统模块（必须存在）
   *
   * @type {IPSSystemModule}
   */
  getPSSystemModuleMust(): IPSSystemModule;

  /**
   * SaaS数据租户列
   * @type {string}
   */
  saaSDCIdColumnName: string;

  /**
   * SaaS数据主键列
   * @type {string}
   */
  saaSDataIdColumnName: string;

  /**
   * SaaS模式
   * @description 值模式 [实体模型SaaS模型] {0：不启用、 1：标准SaaS构型、 2：标准SaaS构型2、 3：标准SaaS构型3、 4：标准SaaS构型4 }
   * @type {( number | 0 | 1 | 2 | 3 | 4)}
   */
  saaSMode: number | 0 | 1 | 2 | 3 | 4;

  /**
   * 实体服务资源模式
   * @description 值模式 [服务API提供模式] {0：默认不提供、 1：默认提供 }
   * @type {( number | 0 | 1)}
   */
  serviceAPIMode: number | 0 | 1;

  /**
   * 服务代码标识
   * @type {string}
   */
  serviceCodeName: string;

  /**
   * 默认存储模式
   * @description 值模式 [平台实体存储类型] {0：无存储、 1：SQL、 2：NoSQL、 4：ServiceAPI、 9：SQL（多模式支持）、 10：NoSQL（多模式支持）、 12：ServiceAPI（多模式支持）、 128：用户自定义、 256：用户自定义2 }
   * @type {( number | 0 | 1 | 2 | 4 | 9 | 10 | 12 | 128 | 256)}
   */
  storageMode: number | 0 | 1 | 2 | 4 | 9 | 10 | 12 | 128 | 256;

  /**
   * 所属系统标识
   * @type {string}
   */
  systemTag: string;

  /**
   * 表名称
   * @type {string}
   */
  tableName: string;

  /**
   * 临时数据处理模式
   * @description 值模式 [临时数据处理模式] {0：不启用、 1：后台、 2：前端、 3：后台及前端 }
   * @type {( number | 0 | 1 | 2 | 3)}
   * @default 0
   */
  tempDataHolder: number | 0 | 1 | 2 | 3;

  /**
   * 联合键值属性集合
   *
   * @type {IPSDEField[]}
   */
  getUnionKeyValuePSDEFields(): IPSDEField[] | null;

  /**
   * 联合键值属性集合
   *
   * @type {IPSDEField[]}
   */
  get unionKeyValuePSDEFields(): IPSDEField[] | null;

  findUnionKeyValuePSDEField(objKey: any): IPSDEField | null;

  /**
   * 逻辑有效值
   * @type {string}
   */
  validLogicValue: string;

  /**
   * 视图2名称
   * @type {string}
   */
  view2Name: string;

  /**
   * 视图3名称
   * @type {string}
   */
  view3Name: string;

  /**
   * 视图4名称
   * @type {string}
   */
  view4Name: string;

  /**
   * 视图名称
   * @type {string}
   */
  viewName: string;

  /**
   * 虚拟实体模式
   * @description 值模式 [虚拟实体模式] {0：不启用、 1：常规多继承模式、 2：高级继承扩展模式、 3：索引主实体模式、 4：混合多继承模式 }
   * @type {( number | 0 | 1 | 2 | 3 | 4)}
   * @default 0
   */
  virtualMode: number | 0 | 1 | 2 | 3 | 4;

  /**
   * 支持接口存储
   * @type {boolean}
   */
  enableAPIStorage: boolean;

  /**
   * 支持建立
   * @type {boolean}
   */
  enableCreate: boolean;

  /**
   * 启用数据版本能力
   * @type {boolean}
   */
  enableDataVer: boolean;

  /**
   * 启用实体缓存
   * @type {boolean}
   */
  enableEntityCache: boolean;

  /**
   * 支持修改
   * @type {boolean}
   */
  enableModify: boolean;

  /**
   * 同时支持多数据源
   * @type {boolean}
   */
  enableMultiDS: boolean;

  /**
   * 支持多表单
   * @type {boolean}
   */
  enableMultiForm: boolean;

  /**
   * 支持多存储模式
   * @type {boolean}
   */
  enableMultiStorage: boolean;

  /**
   * 支持NoSQL存储
   * @type {boolean}
   */
  enableNoSQLStorage: boolean;

  /**
   * 支持删除
   * @type {boolean}
   */
  enableRemove: boolean;

  /**
   * 支持SQL存储
   * @type {boolean}
   */
  enableSQLStorage: boolean;

  /**
   * 支持临时数据
   * @type {boolean}
   * @default false
   */
  enableTempData: boolean;

  /**
   * 支持后端临时数据处理
   * @type {boolean}
   * @default false
   */
  enableTempDataBackend: boolean;

  /**
   * 支持前端临时数据处理
   * @type {boolean}
   * @default false
   */
  enableTempDataFront: boolean;

  /**
   * 启用逻辑有效
   * @type {boolean}
   */
  logicValid: boolean;

  /**
   * 子系统以云服务方式提供
   * @type {boolean}
   */
  subSysAsCloud: boolean;

  /**
   * 子系统实体
   * @type {boolean}
   * @default false
   */
  subSysDE: boolean;

  /**
   * 虚拟实体
   * @type {boolean}
   * @default false
   */
  virtual: boolean;
}
